package cn.wolfcode.trip.base.service;

import cn.wolfcode.trip.base.domain.Goods;
import cn.wolfcode.trip.base.query.GoodsQueryObject;
import cn.wolfcode.trip.base.query.QueryObject;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 商品服务接口
 *
 * @author Lyu
 */
public interface IGoodsService {
    /**
     * 分页查询商品
     *
     * @param qo 条件
     * @return 商品列表
     */
    PageInfo<Goods> queryForList(GoodsQueryObject qo);

    /**
     * 新增或保存商品
     *
     * @param goods 商品对象
     */
    void saveOrUpdate(Goods goods);

    /**
     * 删除商品
     *
     * @param id 商品id
     */
    void delete(Long id);

    /**
     * 查询所有商品
     *
     * @return 商品
     */
    List<Goods> listAll();

    /**
     * 查询需要积分最高的商品
     *
     * @return 积分最高的商品
     */
    Goods getExpensive();

    /**
     * 根据id查询商品
     *
     * @param id 商品id
     * @return 商品
     */
    Goods get(Long id);
}
